curl_multi_init
返回一个新cURL批处理句柄
适用 PHP 版本:PHP 4.0.2 及以上版本。
函数说明:
curl_multi_init() 函数用于初始化一个 cURL 多重请求句柄。该函数创建了一个“多重 cURL 句柄”,使得我们可以同时处理多个 cURL 请求。与传统的 cURL 请求相比,curl_multi_* 函数可以同时并行地执行多个 HTTP 请求,从而显著提升性能,特别适合需要同时访问多个不同 API 或进行多个 HTTP 请求的场景。
函数语法:
resource curl_multi_init(void);
参数:
该函数没有参数。
返回值:
如果成功,返回一个 cURL multi handle(资源类型);否则返回 false。
下面是一个使用 curl_multi_init() 创建多重请求并执行的示例代码:
<?php
// 初始化多个cURL句柄
$mh = curl_multi_init();
// 创建多个cURL请求
$ch1 = curl_init("http://example.com/api/1");
$ch2 = curl_init("http://example.com/api/2");
// 将cURL请求添加到multi句柄中
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
// 执行请求
$active = null;
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM || $active);
// 获取请求结果
$response1 = curl_multi_getcontent($ch1);
$response2 = curl_multi_getcontent($ch2);
// 关闭句柄
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
// 输出响应结果
echo "Response from API 1: " . $response1 . "<br>";
echo "Response from API 2: " . $response2;
?>
示例代码说明:
1. 使用 curl_multi_init() 初始化一个多重 cURL 句柄。
2. 创建两个独立的 cURL 请求,分别指向不同的 API。
3. 使用 curl_multi_add_handle() 将这两个 cURL 请求句柄添加到多重 cURL 句柄中。
4. 通过 curl_multi_exec() 执行并行请求。
5. 通过 curl_multi_getcontent() 获取每个请求的响应内容。
6. 在请求完成后,分别用 curl_multi_remove_handle() 移除每个请求,并用 curl_multi_close() 关闭多重 cURL 句柄。
7. 输出 API 响应内容。